import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import { installErrorHandlers } from './utils/errorHandler'
import Ellipsis from './views/common/Ellipsis.vue'
import request from './api/request'

// 关闭生产提示
Vue.config.productionTip = false

// 关闭开发模式的错误提示（防止显示崩溃页面）
Vue.config.devtools = true
Vue.config.silent = false  // 保留控制台日志，但不显示崩溃页面

Vue.use(ElementUI)

// 注册全局组件
Vue.use(Ellipsis)

// 注册全局HTTP请求方法
Vue.prototype.$http = request

// 添加全局方法
Vue.prototype.$deepCopy = function (obj) {
  return JSON.parse(JSON.stringify(obj))
}

// 安装全局错误处理器（必须在 Vue 实例化之前）
installErrorHandlers(Vue)

new Vue({
  router,
  store,
  render: h => h(App),
  // 组件级别的错误处理
  errorCaptured(err, vm, info) {
    console.error('组件错误捕获:', err, info)
    // 返回 false 阻止错误继续向上传播
    return false
  }
}).$mount('#app')

